﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Management.Instrumentation;

namespace TCP_SocketDongbo
{
    class WmiGrabber:BaseGrabber
    {
        public override void GetNicConfig()
        {
            //Tạo lệnh truy vấn thông tin card mạng
            string queryNet = "Select * From Win32_NetworkAdapterConfiguration";
            //Tạo đối tượng thực thi lệnh truy vấn
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(queryNet);
            //Thực hiện lấy thông tin của card mạng
            ManagementObjectCollection result = searcher.Get();

            //Duyệt qua danh sách card mạng
            foreach (ManagementObject mob in result)
            { 
                //Lấy IP
                string[] address = (string[])mob["IPAddress"] ?? new string[0];
                //Lấy Defaultgateway
                string[] defaultgateways = (string[])mob["DefaultIPGateway"] ?? new string[0];
                //lấy subnetmask
                string[] subnetmask = (string[])mob["IPSubnet"] ?? new string[0];

                //Xuất thông tin card mạng
                Console.WriteLine("Network Card: {0}", mob["Description"]);
                Console.WriteLine("MAC Address: {0}", mob["MACAddress"]);


                //xuất địa chỉ ip
                foreach (string ip in address)
                {
                    Console.WriteLine("Dia chi IP: {0}", ip);
                }
                //xuất địa chỉ DefaultGategaway
                foreach (string df in defaultgateways)
                {
                    Console.WriteLine("Dia chi IP Gateway: {0}", df);
                }
                //xuất địa chỉ SubnetMask
                foreach (string sb in subnetmask)
                {
                    Console.WriteLine("Dia chi IP Gateway: {0}", sb);
                }
                
            }
        }
    }
}
